package com.chenfan.mcn.service;

import com.chenfan.mcn.dao.StarPlatformInfoMapper;
import com.chenfan.common.extension.mybatisplus.enhanced.EnhancedService;
import com.chenfan.mcn.model.StarPlatformInfo;
import com.chenfan.mcn.model.dto.StarPlatformInfoInputDTO;
import com.chenfan.mcn.model.vo.StarPlatInfoVO;
import com.chenfan.mcn.model.vo.StarPlatSelectVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @Author liuyang
 * @Date 2021/1/7
 * @Time 20:33
 * @Version V1.0
 **/
public interface StarPlatformInfoService extends EnhancedService<StarPlatformInfoMapper, StarPlatformInfo> {

    /**
     * 获取红人名下的所有平台信息
     *
     * @param starName {@link String}
     * @return {@link List<StarPlatInfoVO>}
     */
    List<StarPlatInfoVO> getByName(String starName);

    /**
     * 获取多个平台信息
     *
     * @param ids {@link List<Long>}
     * @return {@link List<StarPlatInfoVO>}
     */
    List<StarPlatInfoVO> getByIds(List<Long> ids);

    /**
     * 根据id获取红人平台信息
     *
     * @param id
     * @return StarPlatInfoVO
     */
    StarPlatInfoVO getById(Long id);

    /**
     * 获取所有红人平台信息
     * @param starType
     * @param starStatus
     * @param platformStatus
     * @param platformId
     * @param starId
     * @return
     */
    List<StarPlatInfoVO> getAll(Integer starType, Integer starStatus,Integer platformStatus,String platformId, Long starId);


    /**
     * 红人平台启用禁用
     *
     * @param id         {@link Long}
     * @param starStatus {@link Integer}
     */
    void updatePlatformStatus(Long id, Integer starStatus);

    /**
     * 获取全部的红人平台昵称数据
     * @param tenantId
     * @return
     */
    List<StarPlatSelectVO> getAllStarPlatSelect(Long tenantId);

    /**
     *批量导入更新平台
     * @param inputList
     * @return
     */
    String importUpdatePlafromExcel(List<StarPlatformInfoInputDTO> inputList);

    /**
     * 下载失败原因-批量导入更新平台
     * @param response
     * @param fileId
     */
    void downloadUpdatePlafromFailedReason(HttpServletResponse response, String fileId);


    /**
     * 获取入驻情况
     * @param starPlatformId
     * @param joinIds
     * @return
     */
    Integer getIsSystemAdmin(Long starPlatformId, List<Long> joinIds);

    /**
     * 根据红人平台ID及合同内容获取账号是否入驻
     * @param starPlatformId
     * @param cooperationContent
     * @return
     */
    Integer getIsSystemAdmin(Long starPlatformId, String cooperationContent);
}
